﻿var socket;
function showObrigado(){
    $("#obrigado").fadeIn();
}

/*Função sera executado quando a pagina for completamente carregada*/
window.onload = function () {
    /*Valor da escala converter pontos que vem do servidor para dimensao da tela*/
    var escala = {
        x: window.innerWidth / 640,
        y: window.innerHeight / 480
    }
         
    var status = document.getElementById("status");

    /*Verifica se o servidor permite a utilização de sockets*/
    if (!window.WebSocket) {
        status.innerHTML = "Seu browser não tem suporte para socket!";
        return;
    }

    status.innerHTML = "Conectando ao servidor...";

    /*Instancia um cliente socket e conecta ao servidor local*/
    socket = new WebSocket("ws://localhost:8181/KinectHtml5");
    socket.binaryType = "blob";

    /*Executa quando conecta com o servidor*/
    socket.onopen = function () {
        status.innerHTML = "Conectado.";
    };

    /*Executa quando perde a conexão com servidor*/
    socket.onclose = function () {
        status.innerHTML = "Desconectado";
    }
    var hadoukenEnabled = true;
    /*
    A cada mensagem enviado do servidor o socket executa seu tratamento aqui
    @param json event assume dois formatos:
        event1: {"skeletons":[{"id":"491","joints":[{"name":"hipcenter","x":248.85310363769531,"y":356.12918090820312,"z":2.9233529567718506},...
        event2: {"name":"hadouken"}

        event1 => json contendo todos os esqueletos reconhecidos pelos kinect
        event2 => json contendo o atributo name que corresponde ao evento reconhecido pelo kinect

    */
    socket.onmessage = function (event) {
            status.innerHTML = "Recebendo dados...";

            /*Converte json que foi recebido para um objeto json*/
            var jsonObject = eval('(' + event.data + ')');

            /*Tratamento de esqueletos*/
            if(jsonObject.skeletons != undefined && hadoukenEnabled){
                // for (var i = 0; i < jsonObject.skeletons.length; i++) {
                for (var i = 0; i < 1; i++) {
                    for (var j = 0; j < jsonObject.skeletons[i].joints.length; j++) {
                        
                        var joint = jsonObject.skeletons[i].joints[j];
                        
                        if(joint.name == "handright" || joint.name == "handleft" ){
                            updateHandPosition(joint.name,{x:joint.x * escala.x ,y:joint.y * escala.y},i);    
                        }
                    }
                }
            /*Tratamento de eventos*/
            }else{ 
                if(jsonObject.name == 'hadouken'){
                    hadoukenEnabled = false;
                    $('#hadouken').show();
                    setTimeout("showObrigado()", 24000);
                }
                
            }
// {"skeletons":[{"id":"491","joints":[{"name":"hipcenter","x":248.85310363769531,"y":356.12918090820312,"z":2.9233529567718506},{"name":"spine","x":249.06523132324219,"y":349.6275634765625,"z":2.926203727722168},{"name":"shouldercenter","x":242.46086120605469,"y":317.1036376953125,"z":2.8914248943328857},{"name":"head","x":246.7371826171875,"y":291.88018798828125,"z":2.8812897205352783},{"name":"shoulderleft","x":207.71249389648438,"y":321.60317993164062,"z":2.8844821453094482},{"name":"elbowleft","x":197.39801025390625,"y":350.39495849609375,"z":2.8714091777801514},{"name":"wristleft","x":225.00265502929688,"y":380.829345703125,"z":2.8413817882537842},{"name":"handleft","x":227.948974609375,"y":390.32339477539062,"z":2.8440890312194824},{"name":"shoulderright","x":270.4884033203125,"y":322.1234130859375,"z":2.9046871662139893},{"name":"elbowright","x":283.650634765625,"y":353.9449462890625,"z":2.9172251224517822},{"name":"wristright","x":238.19322204589844,"y":340.156005859375,"z":2.8786592483520508},{"name":"handright","x":216.52656555175781,"y":326.50540161132812,"z":2.83477783203125},{"name":"hipleft","x":223.16252136230469,"y":362.00628662109375,"z":2.9124529361724854},{"name":"kneeleft","x":254.01597595214844,"y":403.16070556640625,"z":3.0918262004852295},{"name":"ankleleft","x":236.52975463867188,"y":406.57989501953125,"z":3.3498179912567139},{"name":"footleft","x":240.12213134765625,"y":405.184326171875,"z":3.2786083221435547},{"name":"hipright","x":266.17861938476562,"y":369.12380981445312,"z":2.9761276245117188},{"name":"kneeright","x":288.25643920898438,"y":401.14956665039062,"z":3.1637518405914307},{"name":"ankleright","x":228.30429077148438,"y":401.465576171875,"z":3.3078179359436035},{"name":"footright","x":235.64262390136719,"y":401.68124389648438,"z":3.2481482028961182}]}]}
    };
};